﻿//
// MainPage.xaml.h
// Declaration of the MainPage class
//

#pragma once

#include "MainPage.g.h"
#include "GameEngine.h"

namespace Coding4Fun
{
namespace Maelstrom
{
namespace GameConsole
{
	/// <summary>
	/// An empty page that can be used on its own or navigated to within a Frame.
	/// </summary>
	[Windows::Foundation::Metadata::WebHostHidden]
	public ref class MainPage sealed
	{
	public:
		MainPage();
		Windows::UI::Xaml::Controls::SwapChainBackgroundPanel^ GetSwapChainBackgroundPanel() { return DXSwapChainPanel; };
		void SetOutputText(Platform::String^ msg);
		void SetFPSText(Platform::String^ msg);

	internal:
		void InitializeInputs(_In_ GameEngine^ game);

	protected:
		virtual void OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs^ e) override;
	private:
		void btnText_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
		void OnKeyDown(_In_ Windows::UI::Core::CoreWindow^, _In_ Windows::UI::Core::KeyEventArgs^ e);
		void OnPointerMoved(_In_ Windows::UI::Core::CoreWindow^, _In_ Windows::UI::Core::PointerEventArgs^ e);

		GameEngine^					m_game;
	};
}}
}
